package cool.tenyears.util;

import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import cool.tenyears.common.constant.UserConstant;
import lombok.extern.slf4j.Slf4j;

/**
 * @author LiChuan
 * @date 2021/7/12 12:57
 */
@Slf4j
public class SaUtil {
    /**
     * 获取登录ID
     * @return String  userId + @@ + loginName
     */
    public static String getLoginId() {
        String loginId= StpUtil.getLoginIdAsString();
        log.info("当前登录用户信息：[[ {} ]]", loginId);
        Assert.notBlank(loginId, "获取登录用户信息失败！");
        return loginId;
    }

    /**
     * 获取登录ID
     * @return Arr  [userId, loginName]
     */
    public static String[] getLoginIdArr() {
        String loginId = getLoginId();
        String[] loginIdArr = StrUtil.splitToArray(loginId, UserConstant.LOGIN_ID_SEPARATOR);
        Assert.isTrue(2 == loginIdArr.length, "获取登录用户信息失败！");
        return loginIdArr;
    }

    /**
     * 获取用户id
     * @return String
     */
    public static Long getUserId() {
        return Convert.toLong(getLoginIdArr()[0]);
    }

    /**
     * 获取登录名
     * @return String
     */
    public static String getLoginName() {
        return getLoginIdArr()[1];
    }

    private SaUtil() {
    }
}
